1. Field of the Invention
The present invention is generally directed to data storage, and in particular to methods and systems for storage arrays.
2. Description of the Related Art
Various versions of RAID (redundant array of inexpensive disk drives) systems are conventionally used to provide reliable data storage, high-speed access, or both high speed access with high reliability.
Disk striping of two drives, also called RAID 0, places even blocks of data on one drive and odd blocks on another drive. Thus, half the data is stored on a first drive, and half the data is stored on a second drive. For read and write transfers longer than a few blocks, bandwidth is improved by accessing both disks simultaneously. One significant disadvantage of standard RAID 0 striping is that reliability is worse than a single drive, because a failure of either drive leaves no complete copy of any of the files.
RAID 1, also known as mirrored disks or shadow sets, uses a pair of disks with identical copies of data. Mirrored disks provide high reliability, in that if one of the two disks fail, the remaining disk contains a duplicate of the data on the failed disk.
However, while mirrored disks provide high reliability, conventionally, they have not provided increased bandwidth.
RAID 5 is a technique in which more than two drives are used to provide a way to recover from a drive failure. For each block of data, the parity of Nxe2x88x921 blocks is computed and stored on the Nth drive. Drawbacks of this technique are that it cannot be used with only two drives, it greatly decreases write performance, and it does not improve sequential read performance.
The present invention relates to accessing data, and in particular, to accessing data from mass storage devices using striping.
One embodiment of the present invention utilizes a novel disk architecture that takes advantage of data redundancy to provide greatly enhanced sequential disk I/O performance. One aspect of the present invention is a system and method which associates at least two different stripe sizes with at least two corresponding different portions of a disk drive. In one embodiment, at least a first disk zone and a second disk zone are accessed using different stripe sizes. In another embodiment, the first zone has a different number of sectors than the second zone.
In one embodiment, the stripe size used to access the first zone is selected based on formatting information. The formatting information may be obtained, by way of example, either by scanning the disk or by reading formatting information from a table of the like. The stripe size may be related to the number of sectors per track in the first zone. In addition, the stripe size may be related to a sector skew. In another embodiment, the stripe size for at least one zone is selected based on at least the sector skew between disk tracks in the zone, and the number of sectors per zone.
In still another embodiment, a first set of data is stored on at least both a first disk drive and a second disk drive. A first stripe of the data set is read from the first drive, and a second stripe of the data set is read from the second drive. In one embodiment, the accesses to the first disk drive and the second disk drive are balanced. Thus, in one embodiment, a system monitors which logical block addresses are accessed by a plurality of read operations accessing at least one of a first portion and a second portion of a first set of data. The system then specifies the first drive as the future source of data for at least one read request to the first set of logical block addresses, based at least in part on the monitoring act. The system further specifies the second drive as the future source of data for at least one read request to the second set of logical block addresses, based at least in part on the monitoring act. In still another embodiment, the selections of the first and the second sets of logical address blocks are intended to substantially equalize the number of read requests handled by the first drive and the second drive.
In one embodiment, mirrored data may be arranged and ordered to enhance I/O operations. For example, a set of data may be stored on a first disk in a first arrangement, and the same set of data may be stored on a second disk in a second order. One aspect of the present invention includes arranging at least a portion of the data set stored on the second disk in a different arrangement or order as compared to the order the data set portion on the first disk. Thus, in one embodiment, even blocks of the data set may be stored on the outer portion of the first disk, and odd blocks of the data set may be stored on the inner portion of the first disk. In addition, odd blocks of the data set may be stored on the outer portion of the second disk and even blocks of the data set may be stored on the inner portion of the second disk. Even and odd blocks of the data set may be read from the corresponding outer portions of the first and the second disks. Thus, in one embodiment, when reading the data set, it is not necessary to perform seeks to the inner portions of the first and the second disks, thereby speeding access times.
Another embodiment of the present invention may be configured to provide constant rate disk streaming using the variable striping technique. Constant rate variable streaming provides significant advantages for multimedia applications, such as audio and video applications. For example, one embodiment of the present invention helps maintain a desired frame rate for video applications and ensures that the frame rate does not fall below a minimum desired rate.
In one embodiment data is advantageously arranged to allow the array to supply data at a substantially constant data rate and at or above a minimum desired data rate. In one embodiment data is striped across 2 or more drives, with the stripe size varied so that the stripe size is larger at the outer diameter (OD) and smaller at the inner diameter (ID). Drives in one subset of the array drives are accessed sequentially in the conventional fashion from the outer diameter to the inner diameter. Drives in another subset of the array drives are accessed from ID to OD using a novel method that uses knowledge of the track size.